// //caller：函数实例的属性，指向调用该函数的函数，如果为全局函数，则返回null
// function outer(){
//   inner();
// }
// function inner(){
//   console.log(inner.caller);
// }
// outer();//[Function: outer]
// inner();//[Function]

// //降低耦合度：也就是前面的那个给函数重新赋值后依旧不变情况。
// function foo(){
//   bar();
// }
// function bar(){
//   //arguments.callee ===>bar
//   //arguments.callee.caller ===>bar.caller
//   console.log(arguments.callee.caller);
// }
// foo();//[Function: foo]

//arguments在严格模式与非严格模式下的callee和caller

//非严格模式
// function nonStrictMode(){
//   console.log(arguments.callee);
//   console.log(arguments.caller);
// }
// nonStrictMode();//[Function: nonStrictMode] /undefined
// console.log(nonStrictMode.callee);//undefined
// console.log(nonStrictMode.caller);//null


//严格模式
